home *** CD-ROM | disk | FTP | other *** search
/ Developer CD Series 1998 August: Technology Seed / August 1998 ADC Seed CD.toast / Mac OS 8.5b2 / allegro-b2-pseudo-SDK / AIncludes / MacTypes.a < prev    next >
Encoding:
Text File  |  1998-07-17  |  19.2 KB  |  684 lines  |  [TEXT/MPS ]

  1. ;
  2. ;    File:        MacTypes.a
  3. ;
  4. ;    Contains:    Basic Macintosh data types.
  5. ;
  6. ;    Version:    Technology:    Mac OS 8.1
  7. ;                Release:    Allego Seed, Use with 3.1 Universal Interfaces
  8. ;
  9. ;    Copyright:    © 1985-1998 by Apple Computer, Inc., all rights reserved.
  10. ;
  11. ;    Bugs?:        Please include the the file and version information (from above) with
  12. ;                the problem description.  Developers belonging to one of the Apple
  13. ;                developer programs can submit bug reports to:
  14. ;
  15. ;                    devsupport@apple.com
  16. ;
  17. ;
  18.     IF &TYPE('__MACTYPES__') = 'UNDEFINED' THEN
  19. __MACTYPES__ SET 1
  20.  
  21.     IF &TYPE('__CONDITIONALMACROS__') = 'UNDEFINED' THEN
  22.     include 'ConditionalMacros.a'
  23.     ENDIF
  24.  
  25.  
  26.  
  27. ; ********************************************************************************
  28. ;
  29. ;    Base integer types for all target OS's and CPU's
  30. ;    
  31. ;        UInt8             8-bit unsigned integer    
  32. ;        SInt8             8-bit signed integer
  33. ;        UInt16            16-bit unsigned integer    
  34. ;        SInt16            16-bit signed integer            
  35. ;        UInt32            32-bit unsigned integer    
  36. ;        SInt32            32-bit signed integer    
  37. ;        UInt64            64-bit unsigned integer    
  38. ;        SInt64            64-bit signed integer    
  39. ;
  40. ;********************************************************************************
  41.  
  42. ; typedef unsigned char                 UInt8
  43.  
  44. ; typedef signed char                     SInt8
  45.  
  46. ; typedef unsigned short                 UInt16
  47.  
  48. ; typedef signed short                     SInt16
  49.  
  50. ; typedef unsigned long                 UInt32
  51.  
  52. ; typedef signed long                     SInt32
  53.  
  54.     IF TARGET_RT_BIG_ENDIAN THEN
  55. wide                    RECORD 0
  56. hi                         ds.l    1                ; offset: $0 (0)
  57. lo                         ds.l    1                ; offset: $4 (4)
  58. sizeof                     EQU *                    ; size:   $8 (8)
  59.                         ENDR
  60. UnsignedWide            RECORD 0
  61. hi                         ds.l    1                ; offset: $0 (0)
  62. lo                         ds.l    1                ; offset: $4 (4)
  63. sizeof                     EQU *                    ; size:   $8 (8)
  64.                         ENDR
  65.     ELSE
  66. wide                    RECORD 0
  67. lo                         ds.l    1                ; offset: $0 (0)
  68. hi                         ds.l    1                ; offset: $4 (4)
  69. sizeof                     EQU *                    ; size:   $8 (8)
  70.                         ENDR
  71. UnsignedWide            RECORD 0
  72. lo                         ds.l    1                ; offset: $0 (0)
  73. hi                         ds.l    1                ; offset: $4 (4)
  74. sizeof                     EQU *                    ; size:   $8 (8)
  75.                         ENDR
  76.     ENDIF    ; TARGET_RT_BIG_ENDIAN
  77. SInt64                    RECORD 0
  78. f                         ds        wide
  79. sizeof                     EQU *                    ; size:   $8 (8)
  80.                         ENDR
  81.  
  82.  
  83. UInt64                    RECORD 0
  84. f                         ds        UnsignedWide
  85. sizeof                     EQU *                    ; size:   $8 (8)
  86.                         ENDR
  87.  
  88.  
  89.  
  90. ; ********************************************************************************
  91. ;
  92. ;    Base fixed point types 
  93. ;    
  94. ;        Fixed            16-bit signed integer plus 16-bit fraction
  95. ;        UnsignedFixed    16-bit unsigned integer plus 16-bit fraction
  96. ;        Fract            2-bit signed integer plus 30-bit fraction
  97. ;        ShortFixed        8-bit signed integer plus 8-bit fraction
  98. ;        
  99. ;********************************************************************************
  100.  
  101. ; typedef long                             Fixed
  102.  
  103. ; typedef Fixed *                        FixedPtr
  104.  
  105. ; typedef long                             Fract
  106.  
  107. ; typedef Fract *                        FractPtr
  108.  
  109. ; typedef unsigned long                 UnsignedFixed
  110.  
  111. ; typedef short                         ShortFixed
  112.  
  113.  
  114.  
  115. ; ********************************************************************************
  116. ;
  117. ;    Base floating point types 
  118. ;    
  119. ;        Float32            32 bit IEEE float:  1 sign bit, 8 exponent bits, 23 fraction bits
  120. ;        Float64            64 bit IEEE float:  1 sign bit, 11 exponent bits, 52 fraction bits    
  121. ;        Float80            80 bit MacOS float: 1 sign bit, 15 exponent bits, 1 integer bit, 63 fraction bits
  122. ;        Float96            96 bit 68881 float: 1 sign bit, 15 exponent bits, 16 pad bits, 1 integer bit, 63 fraction bits
  123. ;        
  124. ;    Note: These are fixed size floating point types, useful when writing a floating
  125. ;          point value to disk.  If your compiler does not support a particular size 
  126. ;          float, a struct is used instead.
  127. ;          Use of of the NCEG types (e.g. double_t) or an ANSI C type (e.g. double) if
  128. ;          you want a floating point representation that is natural for any given
  129. ;          compiler, but might be a different size on different compilers.
  130. ;
  131. ;********************************************************************************
  132.  
  133. Float32                    RECORD 0
  134. bits                     ds.l    1                ; offset: $0 (0)
  135. sizeof                     EQU *                    ; size:   $4 (4)
  136.                         ENDR
  137. Float64                    RECORD 0
  138. bits                     ds.l    2                ; offset: $0 (0)
  139. sizeof                     EQU *                    ; size:   $8 (8)
  140.                         ENDR
  141. Float80                    RECORD 0
  142. exp                         ds.w    1                ; offset: $0 (0)
  143. man                         ds.w    4                ; offset: $2 (2)
  144. sizeof                     EQU *                    ; size:   $A (10)
  145.                         ENDR
  146. Float96                    RECORD 0
  147. exp                         ds.w    1                ; offset: $0 (0)
  148. filler                     ds.w    1                ; offset: $2 (2)
  149. man                         ds.w    4                ; offset: $4 (4)
  150. sizeof                     EQU *                    ; size:   $C (12)
  151.                         ENDR
  152.  
  153.  
  154. ; ********************************************************************************
  155. ;
  156. ;    MacOS Memory Manager types
  157. ;    
  158. ;        Ptr                Pointer to a non-relocatable block
  159. ;        Handle            Pointer to a master pointer to a relocatable block
  160. ;        Size            The number of bytes in a block (signed for historical reasons)
  161. ;        
  162. ;********************************************************************************
  163.  
  164. ; typedef SInt8 *                        Ptr
  165.  
  166. ; typedef Ptr *                            Handle
  167.  
  168. ; typedef long                             Size
  169.  
  170.  
  171. ; ********************************************************************************
  172. ;
  173. ;    Higher level basic types
  174. ;    
  175. ;        OSErr                    16-bit result error code
  176. ;        OSStatus                32-bit result error code
  177. ;        LogicalAddress            Address in the clients virtual address space
  178. ;        ConstLogicalAddress        Address in the clients virtual address space that will only be read
  179. ;        PhysicalAddress            Real address as used on the hardware bus
  180. ;        BytePtr                    Pointer to an array of bytes
  181. ;        ByteCount                The size of an array of bytes
  182. ;        ByteOffset                An offset into an array of bytes
  183. ;        ItemCount                32-bit iteration count
  184. ;        OptionBits                Standard 32-bit set of bit flags
  185. ;        PBVersion                ?
  186. ;        Duration                32-bit millisecond timer for drivers
  187. ;        AbsoluteTime            64-bit clock
  188. ;        ScriptCode                A particular set of written characters (e.g. Roman vs Cyrillic) and their encoding
  189. ;        LangCode                A particular language (e.g. English), as represented using a particular ScriptCode
  190. ;        RegionCode                Designates a language as used in a particular region (e.g. British vs American
  191. ;                                English) together with other region-dependent characteristics (e.g. date format)
  192. ;        FourCharCode            A 32-bit value made by packing four 1 byte characters together
  193. ;        OSType                    A FourCharCode used in the OS and file system (e.g. creator)
  194. ;        ResType                    A FourCharCode used to tag resources (e.g. 'DLOG')
  195. ;        
  196. ;********************************************************************************
  197.  
  198. ; typedef SInt16                         OSErr
  199.  
  200. ; typedef SInt32                         OSStatus
  201.  
  202. ; typedef void *                        LogicalAddress
  203.  
  204. ; typedef const void *                    ConstLogicalAddress
  205.  
  206. ; typedef void *                        PhysicalAddress
  207.  
  208. ; typedef UInt8 *                        BytePtr
  209.  
  210. ; typedef UInt32                         ByteCount
  211.  
  212. ; typedef UInt32                         ByteOffset
  213.  
  214. ; typedef SInt32                         Duration
  215.  
  216. AbsoluteTime            RECORD 0
  217. f                         ds        UnsignedWide
  218. sizeof                     EQU *                    ; size:   $8 (8)
  219.                         ENDR
  220.  
  221.  
  222. ; typedef UInt32                         OptionBits
  223.  
  224. ; typedef UInt32                         ItemCount
  225.  
  226. ; typedef UInt32                         PBVersion
  227.  
  228. ; typedef SInt16                         ScriptCode
  229.  
  230. ; typedef SInt16                         LangCode
  231.  
  232. ; typedef SInt16                         RegionCode
  233.  
  234. ; typedef unsigned long                 FourCharCode
  235.  
  236. ; typedef FourCharCode                     OSType
  237.  
  238. ; typedef FourCharCode                     ResType
  239.  
  240. ; typedef OSType *                        OSTypePtr
  241.  
  242. ; typedef ResType *                        ResTypePtr
  243.  
  244.  
  245. ; ********************************************************************************
  246. ;
  247. ;    Boolean types and values
  248. ;    
  249. ;        Boolean            A one byte value, holds "false" (0) or "true" (1)
  250. ;        false            The Boolean value of zero (0)
  251. ;        true            The Boolean value of one (1)
  252. ;        
  253. ;********************************************************************************
  254.  
  255.  
  256. false                            EQU        0
  257. true                            EQU        1
  258. ; typedef unsigned char                 Boolean
  259.  
  260.  
  261.  
  262. ; ********************************************************************************
  263. ;
  264. ;    Function Pointer Types
  265. ;    
  266. ;        ProcPtr                    Generic pointer to a function
  267. ;        Register68kProcPtr        Pointer to a 68K function that expects parameters in registers
  268. ;        UniversalProcPtr        Pointer to classic 68K code or a RoutineDescriptor
  269. ;        
  270. ;        ProcHandle                Pointer to a ProcPtr
  271. ;        UniversalProcHandle        Pointer to a UniversalProcPtr
  272. ;        
  273. ;********************************************************************************
  274.  
  275. ; typedef ProcPtr *                        ProcHandle
  276.  
  277. ; typedef UniversalProcPtr *            UniversalProcHandle
  278.  
  279.  
  280.  
  281. ; ********************************************************************************
  282. ;
  283. ;    Common Constants
  284. ;    
  285. ;        noErr                    OSErr: function performed properly - no error
  286. ;        kNilOptions                OptionBits: all flags false
  287. ;        kInvalidID                KernelID: NULL is for pointers as kInvalidID is for ID's
  288. ;        kVariableLengthArray    array bounds: variable length array
  289. ;
  290. ;    Note: kVariableLengthArray is used in array bounds to specify a variable length array.
  291. ;          It is ususally used in variable length structs when the last field is an array
  292. ;          of any size.  Before ANSI C, we used zero as the bounds of variable length 
  293. ;          array, but zero length array are illegal in ANSI C.  Example usage:
  294. ;    
  295. ;        struct FooList 
  296. ;        {
  297. ;            short     listLength;
  298. ;            Foo        elements[kVariableLengthArray];
  299. ;        };
  300. ;        
  301. ;********************************************************************************
  302.  
  303.  
  304. noErr                            EQU        0
  305.  
  306. kNilOptions                        EQU        0
  307.  
  308. kInvalidID                        EQU        0
  309.  
  310. kVariableLengthArray            EQU        1
  311.  
  312. kUnknownType                    EQU        $3F3F3F3F            ; '????' QuickTime 3.0: default unknown ResType or OSType 
  313.  
  314.  
  315. ; ********************************************************************************
  316. ;
  317. ;    String Types
  318. ;    
  319. ;        UniChar                    A single 16-bit Unicode character
  320. ;        UniCharCount            A count of Unicode characters in an array or buffer
  321. ;
  322. ;        StrNNN                    Pascal string holding up to NNN bytes
  323. ;        StringPtr                Pointer to a pascal string
  324. ;        StringHandle            Pointer to a StringPtr
  325. ;        ConstStrNNNParam        For function parameters only - means string is const
  326. ;        
  327. ;        CStringPtr                Pointer to a C string       (same as:  char*)
  328. ;        ConstCStringPtr            Pointer to a const C string (same as:  const char*)
  329. ;        
  330. ;    Note: The length of a pascal string is stored in the first byte.
  331. ;          A pascal string does not have a termination byte and can be at most 255 bytes long.
  332. ;          The first character in a pascal string is offset one byte from the start of the string. 
  333. ;          
  334. ;          A C string is terminated with a byte of value zero.  
  335. ;          A C string has no length limitation.
  336. ;          The first character in a C string is the first byte of the string. 
  337. ;          
  338. ;        
  339. ;********************************************************************************
  340.  
  341. ; typedef UInt16                         UniChar
  342.  
  343. ; typedef UInt32                         UniCharCount
  344.  
  345. Str255                    RECORD 0
  346. elements                 ds.b    256
  347. sizeof                     EQU *                    ; size:   $100 (256)
  348.                         ENDR
  349.  
  350.  
  351. Str63                    RECORD 0
  352. elements                 ds.b    64
  353. sizeof                     EQU *                    ; size:   $40 (64)
  354.                         ENDR
  355.  
  356.  
  357. Str32                    RECORD 0
  358. elements                 ds.b    33
  359.                          ORG 34
  360. sizeof                     EQU *                    ; size:   $22 (34)
  361.                         ENDR
  362.  
  363.  
  364. Str31                    RECORD 0
  365. elements                 ds.b    32
  366. sizeof                     EQU *                    ; size:   $20 (32)
  367.                         ENDR
  368.  
  369.  
  370. Str27                    RECORD 0
  371. elements                 ds.b    28
  372. sizeof                     EQU *                    ; size:   $1C (28)
  373.                         ENDR
  374.  
  375.  
  376. Str15                    RECORD 0
  377. elements                 ds.b    16
  378. sizeof                     EQU *                    ; size:   $10 (16)
  379.                         ENDR
  380.  
  381.  
  382. ;    The type Str32 is used in many AppleTalk based data structures.
  383. ;    It holds up to 32 one byte chars.  The problem is that with the
  384. ;    length byte it is 33 bytes long.  This can cause weird alignment
  385. ;    problems in structures.  To fix this the type "Str32Field" has
  386. ;    been created.  It should only be used to hold 32 chars, but
  387. ;    it is 34 bytes long so that there are no alignment problems.
  388. ;
  389.  
  390. Str32Field                RECORD 0
  391. elements                 ds.b    34
  392. sizeof                     EQU *                    ; size:   $22 (34)
  393.                         ENDR
  394.  
  395.  
  396. ;    QuickTime 3.0:
  397. ;    The type StrFileName is used to make MacOS structs work 
  398. ;    cross-platform.  For example FSSpec or SFReply previously
  399. ;    contained a Str63 field.  They now contain a StrFileName
  400. ;    field which is the same when targeting the MacOS but is
  401. ;    a 256 char buffer for Win32 and unix, allowing them to
  402. ;    contain long file names.
  403. ;
  404.  
  405.     IF TARGET_OS_MAC THEN
  406. StrFileName                RECORD 0
  407. f                         ds        Str63
  408. sizeof                     EQU *                    ; size:   $40 (64)
  409.                         ENDR
  410.  
  411.  
  412.     ELSE
  413. StrFileName                RECORD 0
  414. f                         ds        Str255
  415. sizeof                     EQU *                    ; size:   $100 (256)
  416.                         ENDR
  417.  
  418.  
  419.     ENDIF    ; TARGET_OS_MAC
  420. ; ********************************************************************************
  421. ;
  422. ;    Quickdraw Types
  423. ;    
  424. ;        Point                2D Quickdraw coordinate, range: -32K to +32K
  425. ;        Rect                Rectangluar Quickdraw area
  426. ;        Style                Quickdraw font rendering styles
  427. ;        StyleParameter        Style when used as a parameter (historical 68K convention)
  428. ;        StyleField            Style when used as a field (historical 68K convention)
  429. ;        CharParameter        Char when used as a parameter (historical 68K convention)
  430. ;        
  431. ;    Note:   The original Macintosh toolbox in 68K Pascal defined Style as a SET.  
  432. ;            Both Style and CHAR occupy 8-bits in packed records or 16-bits when 
  433. ;            used as fields in non-packed records or as parameters. 
  434. ;        
  435. ;********************************************************************************
  436.  
  437. Point                    RECORD 0
  438. v                         ds.w    1                ; offset: $0 (0)
  439. h                         ds.w    1                ; offset: $2 (2)
  440.                          ORG 0
  441. vh                         ds.w    2                ; offset: $0 (0)
  442. sizeof                     EQU *                    ; size:   $4 (4)
  443.                         ENDR
  444. ; typedef struct Point *                PointPtr
  445.  
  446. Rect                    RECORD 0
  447. top                         ds.w    1                ; offset: $0 (0)
  448. left                     ds.w    1                ; offset: $2 (2)
  449. bottom                     ds.w    1                ; offset: $4 (4)
  450. right                     ds.w    1                ; offset: $6 (6)
  451.                          ORG 0
  452. topLeft                     ds        Point            ; offset: $0 (0)
  453. botRight                 ds        Point            ; offset: $4 (4)
  454. sizeof                     EQU *                    ; size:   $8 (8)
  455.                         ENDR
  456. ; typedef struct Rect *                    RectPtr
  457.  
  458. ; typedef short                         CharParameter
  459.  
  460.  
  461. normal                            EQU        0
  462. bold                            EQU        1
  463. italic                            EQU        2
  464. underline                        EQU        4
  465. outline                            EQU        8
  466. shadow                            EQU        $10
  467. condense                        EQU        $20
  468. extend                            EQU        $40
  469. ; typedef unsigned char                 Style
  470.  
  471. ; typedef short                         StyleParameter
  472.  
  473.  
  474.  
  475.  
  476.  
  477. ; ********************************************************************************
  478. ;
  479. ;    MacOS versioning structures
  480. ;    
  481. ;        VersRec                    Contents of a 'vers' resource
  482. ;        VersRecPtr                Pointer to a VersRecPtr
  483. ;        VersRecHndl                Resource Handle containing a VersRec
  484. ;        NumVersion                Packed BCD version representation (e.g. "4.2.1a3" is 0x04214003)
  485. ;        UniversalProcPtr        Pointer to classic 68K code or a RoutineDescriptor
  486. ;        
  487. ;        ProcHandle                Pointer to a ProcPtr
  488. ;        UniversalProcHandle        Pointer to a UniversalProcPtr
  489. ;        
  490. ;********************************************************************************
  491.  
  492.     IF TARGET_RT_BIG_ENDIAN THEN
  493. NumVersion                RECORD 0
  494. ;  Numeric version part of 'vers' resource 
  495. majorRev                 ds.b    1                ; offset: $0 (0)        ; 1st part of version number in BCD
  496. minorAndBugRev             ds.b    1                ; offset: $1 (1)        ; 2nd & 3rd part of version number share a byte
  497. stage                     ds.b    1                ; offset: $2 (2)        ; stage code: dev, alpha, beta, final
  498. nonRelRev                 ds.b    1                ; offset: $3 (3)        ; revision level of non-released version
  499. sizeof                     EQU *                    ; size:   $4 (4)
  500.                         ENDR
  501.     ELSE
  502. NumVersion                RECORD 0
  503. ;  Numeric version part of 'vers' resource accessable in little endian format 
  504. nonRelRev                 ds.b    1                ; offset: $0 (0)        ; revision level of non-released version
  505. stage                     ds.b    1                ; offset: $1 (1)        ; stage code: dev, alpha, beta, final
  506. minorAndBugRev             ds.b    1                ; offset: $2 (2)        ; 2nd & 3rd part of version number share a byte
  507. majorRev                 ds.b    1                ; offset: $3 (3)        ; 1st part of version number in BCD
  508. sizeof                     EQU *                    ; size:   $4 (4)
  509.                         ENDR
  510.     ENDIF    ; TARGET_RT_BIG_ENDIAN
  511.  
  512.                                                             ; Version Release Stage Codes 
  513. developStage                    EQU        $20
  514. alphaStage                        EQU        $40
  515. betaStage                        EQU        $60
  516. finalStage                        EQU        $80
  517. NumVersionVariant        RECORD 0
  518. ;  NumVersionVariant is a wrapper so NumVersion can be accessed as a 32-bit value 
  519. parts                     ds        NumVersion        ; offset: $0 (0)
  520.                          ORG 0
  521. whole                     ds.l    1                ; offset: $0 (0)
  522. sizeof                     EQU *                    ; size:   $4 (4)
  523.                         ENDR
  524. VersRec                    RECORD 0
  525. ;  'vers' resource format 
  526. numericVersion             ds        NumVersion        ; offset: $0 (0)        ; encoded version number
  527. countryCode                 ds.w    1                ; offset: $4 (4)        ; country code from intl utilities
  528. shortVersion             ds        Str255            ; offset: $6 (6)        ; version number string - worst case
  529. reserved                 ds        Str255            ; offset: $106 (262)    ; longMessage string packed after shortVersion
  530. sizeof                     EQU *                    ; size:   $206 (518)
  531.                         ENDR
  532. ; typedef struct VersRec *                VersRecPtr
  533.  
  534. ; typedef VersRecPtr *                    VersRecHndl
  535.  
  536. ; *********************************************************************************
  537. ;
  538. ;    Old names for types
  539. ;        
  540. ;********************************************************************************
  541.  
  542. ; typedef UInt8                         Byte
  543.  
  544. ; typedef SInt8                         SignedByte
  545.  
  546. ; typedef struct wide *                    WidePtr
  547.  
  548. ; typedef struct UnsignedWide *            UnsignedWidePtr
  549.  
  550. extended80                RECORD 0
  551. f                         ds        Float80
  552. sizeof                     EQU *                    ; size:   $A (10)
  553.                         ENDR
  554.  
  555.  
  556. extended96                RECORD 0
  557. f                         ds        Float96
  558. sizeof                     EQU *                    ; size:   $C (12)
  559.                         ENDR
  560.  
  561.  
  562. ; typedef SInt8                         VHSelect
  563.  
  564.  
  565. ; *********************************************************************************
  566. ;
  567. ;    Debugger functions:
  568. ;    
  569. ;    Name            MacsBug            Macintosh Debugger                    Copland Debugger
  570. ;    ----------        -----------        -----------------------------        -------------------
  571. ;    Debugger        yes                InterfaceLib maps to DebugStr        yes
  572. ;    DebugStr        yes                yes                                    yes
  573. ;    Debugger68k        yes                InterfaceLib maps to DebugStr        obsolete?
  574. ;    DebugStr68k        yes                InterfaceLib maps to DebugStr        obsolete?
  575. ;    debugstr        yes                InterfaceLib maps to DebugStr        yes
  576. ;    SysBreak        no                InterfaceLib maps to SysError        obsolete?
  577. ;    SysBreakStr        no                InterfaceLib maps to SysError        obsolete?
  578. ;    SysBreakFunc    no                InterfaceLib maps to SysError        obsolete?
  579. ;    SysDebug        ?                ?                                    ?
  580. ;    SysDebugStr        ?                ?                                    ?
  581. ;    LLDebugger        no                yes                                    Low Level Nub
  582. ;    LLDebugStr        no                yes                                    Low Level Nub
  583. ;    
  584. ;********************************************************************************
  585.  
  586.  
  587. ;
  588. ; pascal void Debugger(void )
  589. ;
  590.     IF TARGET_OS_MAC ** TARGET_CPU_68K ** ¬ TARGET_RT_MAC_CFM THEN
  591.         _Debugger:    OPWORD    $A9FF
  592.     ELSEIF TARGET_OS_MAC ** TARGET_RT_MAC_CFM THEN
  593.         IMPORT_CFM_FUNCTION Debugger
  594.     ENDIF
  595.  
  596. ;
  597. ; pascal void DebugStr(ConstStr255Param debuggerMsg)
  598. ;
  599.     IF TARGET_OS_MAC ** TARGET_CPU_68K ** ¬ TARGET_RT_MAC_CFM THEN
  600.         _DebugStr:    OPWORD    $ABFF
  601.     ELSEIF TARGET_OS_MAC ** TARGET_RT_MAC_CFM THEN
  602.         IMPORT_CFM_FUNCTION DebugStr
  603.     ENDIF
  604.  
  605.     IF TARGET_OS_MAC THEN
  606. ;  Low level Copland debugger 
  607. ;
  608. ; pascal void LLDebugger(void )
  609. ;
  610.     IF TARGET_OS_MAC ** TARGET_RT_MAC_CFM THEN
  611.         IMPORT_CFM_FUNCTION LLDebugger
  612.     ENDIF
  613.  
  614. ;
  615. ; pascal void LLDebugStr(ConstStr255Param debuggerMsg)
  616. ;
  617.     IF TARGET_OS_MAC ** TARGET_RT_MAC_CFM THEN
  618.         IMPORT_CFM_FUNCTION LLDebugStr
  619.     ENDIF
  620.  
  621.     IF TARGET_CPU_PPC THEN
  622. ;  Only for System 7 native drivers 
  623. ;
  624. ; extern void SysDebug(void )
  625. ;
  626.     IF TARGET_OS_MAC ** TARGET_RT_MAC_CFM THEN
  627.         IMPORT_CFM_FUNCTION SysDebug
  628.     ENDIF
  629.  
  630. ;
  631. ; extern void SysDebugStr(ConstStr255Param str)
  632. ;
  633.     IF TARGET_OS_MAC ** TARGET_RT_MAC_CFM THEN
  634.         IMPORT_CFM_FUNCTION SysDebugStr
  635.     ENDIF
  636.  
  637.     ENDIF    ; TARGET_CPU_PPC
  638. ;  SADE break points 
  639. ;
  640. ; pascal void SysBreak(void )
  641. ;
  642.     IF TARGET_OS_MAC ** TARGET_CPU_68K ** ¬ TARGET_RT_MAC_CFM THEN
  643.         Macro
  644.         _SysBreak
  645.             move.w              #$FE16,D0
  646.             dc.w                $A9C9
  647.         EndM
  648.     ELSEIF TARGET_OS_MAC ** TARGET_RT_MAC_CFM THEN
  649.         IMPORT_CFM_FUNCTION SysBreak
  650.     ENDIF
  651.  
  652. ;
  653. ; pascal void SysBreakStr(ConstStr255Param debuggerMsg)
  654. ;
  655.     IF TARGET_OS_MAC ** TARGET_CPU_68K ** ¬ TARGET_RT_MAC_CFM THEN
  656.         Macro
  657.         _SysBreakStr
  658.             move.w              #$FE15,D0
  659.             dc.w                $A9C9
  660.         EndM
  661.     ELSEIF TARGET_OS_MAC ** TARGET_RT_MAC_CFM THEN
  662.         IMPORT_CFM_FUNCTION SysBreakStr
  663.     ENDIF
  664.  
  665. ;
  666. ; pascal void SysBreakFunc(ConstStr255Param debuggerMsg)
  667. ;
  668.     IF TARGET_OS_MAC ** TARGET_CPU_68K ** ¬ TARGET_RT_MAC_CFM THEN
  669.         Macro
  670.         _SysBreakFunc
  671.             move.w              #$FE14,D0
  672.             dc.w                $A9C9
  673.         EndM
  674.     ELSEIF TARGET_OS_MAC ** TARGET_RT_MAC_CFM THEN
  675.         IMPORT_CFM_FUNCTION SysBreakFunc
  676.     ENDIF
  677.  
  678.     ENDIF    ; TARGET_OS_MAC
  679.  
  680.     ENDIF ; __MACTYPES__ 
  681.  
  682.